#导入套索回归模型、糖尿病数据集、划分样本的方法及NumPy库
from sklearn.linear_model import Lasso
from sklearn.datasets import load_diabetes
from sklearn.model_selection import train_test_split
import numpy as np

#将数据集划分为训练集和测试集
ds = load_diabetes()
x,y= ds.data,ds.target
x_train,x_test,y_train,y_test=train_test_split(x,y,random_state=8)

#训练模型
model=Lasso(alpha=0.1,max_iter=100000)
model.fit(x_train,y_train)
attr_cnt = np.sum(model.coef_!=0)		#模型特征属性不等于0的个数

#评估模型，计算模型的预测准确率
r21=model.score(x_train,y_train)	#计算模型在训练集上的预测准确率
r22=model.score(x_test,y_test)	#计算模型在测试集上的预测准确率

#输出模型的预测准确率
print("模型在训练集上的预测准确率为：",r21) 
print("模型在测试集上的预测准确率为：",r22)
print("套索回归使用的特征数为：", attr_cnt)
 